異步編程是一種編程方式,用來處理那些需要等待的操作,但不會讓整個應用程式卡住。當你需要執行像讀取文件、發送網路請求等需要一點時間才能完成的任務時,異步編程可以讓應用程式在等待這些操作的同時繼續處理其他工作,這樣應用程式在處理這些任務時依然可以保持順暢,不會出現卡頓。(有點像是系統程式裡面的RR Rotate)
import 'dart:async';
void main() {
  print('開始執行');
  fetchData().then((data) {
    print('收到資料: $data');
  });
  print('這行會先執行');
}
Future<String> fetchData() async {
  await Future.delayed(Duration(seconds: 2));  // 模擬耗時操作
  return '資料已返回';
}
Future<void> fetchData() async {
  try {
    var response = await http.get(Uri.parse('https://example.com'));
    print('Response status: ${response.statusCode}');
    print('Response body: ${response.body}');
  } catch (e) {
    print('Error: $e');
  }
}
import 'dart:async';
void main() {
  Stream<int> stream = countStream(5);
  stream.listen((count) {
    print('收到數字: $count');
  });
}
Stream<int> countStream(int max) async* {
  for (int i = 1; i <= max; i++) {
    await Future.delayed(Duration(seconds: 1));  // 模擬每秒發出一個數字
    yield i;  // 發送數字
  }
}
我們明天見~